home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 19.zip / BS1 part 19 / Lattice C disk 4.adf / Compiler_Headers / exec / semaphores.h < prev    next >
C/C++ Source or Header  |  1988-10-25  |  1KB  |  59 lines

  1. #ifndef EXEC_SEMAPHORES_H
  2. #define EXEC_SEMAPHORES_H
  3. /*
  4. **    $Filename: exec/semaphores.h $
  5. **    $Release: 1.3 $
  6. **
  7. **    
  8. **
  9. **    (C) Copyright 1986,1987,1988 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef EXEC_NODES_H
  14. #include "exec/nodes.h"
  15. #endif !EXEC_NODES_H
  16.  
  17. #ifndef EXEC_LISTS_H
  18. #include "exec/lists.h"
  19. #endif !EXEC_LISTS_H
  20.  
  21. #ifndef EXEC_PORTS_H
  22. #include "exec/ports.h"
  23. #endif !EXEC_PORTS_H
  24.  
  25. #ifndef EXEC_TASKS_H
  26. #include "exec/tasks.h"
  27. #endif !EXEC_TASKS_H
  28.  
  29.  
  30. /****** Semaphore ***************************************************/
  31.  
  32. struct Semaphore {
  33.     struct MsgPort sm_MsgPort;
  34.     WORD   sm_Bids;
  35. };
  36.  
  37. #define sm_LockMsg    mp_SigTask
  38.  
  39.  
  40. /****** SignalSemaphore *********************************************/
  41.  
  42. /* this is the structure used to request a signal semaphore */
  43. struct SemaphoreRequest {
  44.     struct  MinNode sr_Link;
  45.     struct  Task *sr_Waiter;
  46. };
  47.  
  48. /* this is the actual semaphore itself */
  49. struct SignalSemaphore {
  50.     struct  Node ss_Link;
  51.     SHORT   ss_NestCount;
  52.     struct  MinList ss_WaitQueue;
  53.     struct  SemaphoreRequest ss_MultipleLink;
  54.     struct  Task *ss_Owner;
  55.     SHORT   ss_QueueCount;
  56. };
  57.  
  58. #endif    /* EXEC_SEMAPHORES_H */
  59.